Instant messaging (IM) systems have enjoyed significant popularity since their introduction. By way of overview, IM systems are generally designed to enable real-time communication among participants who use electronic devices (typically, personal computer devices) to send and receive IM messages. An IM system typically includes functionality for allowing an IM user to define a group of participants with whom the user frequently communicates. The IM system will then typically notify the IM user when any member of the thus-defined group happens to be on-line. The IM user then has the option of starting a communication session with one or more of the group members. This prompts the IM system to open a user interface (UI) panel that will display an evolving sequence of textual messages transmitted among group members. IM systems also typically allow users to communicate with group members by sending other kinds of information, such as files, images, audio information, and so forth.
FIG. 1 shows a broad overview of a conventional instant messaging system 100. In this system 100, a device A 102 and device B 104 use instant-messaging functionality to communicate with each other via a coupling mechanism 106 (typically, in part, the Internet). In this conventional configuration, to establish a communication session, the system provides set-up functionality (not shown) that connects device A 102 and device B 104 to a switchboard 108. The switchboard 108 thereafter serves the role routing instant messages (IM's) 110 between the user devices (102, 104). Additional users can join the session, whereupon the switchboard 108 then serves the role of routing IM messages 110 generated by any participant of the conversation to all of the other participants.
While the system 100 shown in FIG. 1 has proven to be a feasible solution to implementing instant messaging, it does suffer from certain drawbacks. First, the growing popularity of instant messaging may impose a significant processing burden on the switchboard 108. More specifically, the switchboard is typically implemented as one or more server-type computers. The large processing load imposed by IM traffic can consume a large amount of the server's resources. The IM users may experience delays in service as result of such consumption of server resources.
Second, the use of the switchboard can be inefficient, particularly in those cases where the participants of a conversation are physically located in close proximity to each other (possibly within the same corporation and behind the same firewall), yet the switchboard 108 is housed at a location which is remote from all of the participants. For instance, consider the case where two IM users who are employees of Microsoft Research in China wish to communicate with each other via an IM service which houses its switchboards 108 in San Jose, Calif. Routing IM messages via the switchboard 108 in these circumstances may introduce unnecessary overhead to the IM transaction, which may manifest itself in delays in the communication session.
Third, the use of the switchboard 108 mandates an indirect routing scheme that may be the source of errors in IM message transmission. This may result in dropped (i.e., lost) IM messages.
The above-referenced '575 application provides an exemplary solution to some of the above problems by providing a mechanism for directly transmitting files from one IM participant to another without routing the files through the switchboard 108. The '575 application further describes a mechanism for intelligently selecting an optimal communication strategy to transfer information from one user device to another. Nevertheless, there is room for improvement to the direct transfer strategies described in the '575 application.
For at least the above-identified reasons, there is an exemplary need for more satisfactory strategies for transmitting instant messages among participants of an instant messaging conversation.